问题描述
有没有办法不按行而是按列从 ClickHouse 返回数据?
因此,对于列 2021-06-02 13:39:14.547 1778-1954/? E/ScreenModeManager: updateGlobalModeId modeId 1 mCurrentModeId 1
2021-06-02 13:39:14.550 4172-4191/? E/oiface: client not found,skipped
2021-06-02 13:39:14.552 1778-9509/? E/ScreenModeManager: updateGlobalModeId modeId 1 mCurrentModeId 1
2021-06-02 13:39:14.556 1778-9251/? E/ScreenModeManager: updateGlobalModeId modeId 1 mCurrentModeId 1
2021-06-02 13:39:14.559 3150-3150/? E/filemap: mmap(3710025728,2684) Failed: Invalid argument
2021-06-02 13:39:14.559 3150-3150/? E/NewUnityProjec: Failed to mmap file 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'
2021-06-02 13:39:14.559 3150-3150/? E/NewUnityProjec: Failed to open 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'.
2021-06-02 13:39:14.559 3150-3150/? E/ResourcesManager: Failed to add asset path /data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk
2021-06-02 13:39:14.559 3150-3150/? E/ActivityThread: updateLocaleListFromAppContext context.getResources() is null,return
2021-06-02 13:39:14.562 3150-3150/? E/filemap: mmap(3710025728,2684) Failed: Invalid argument
2021-06-02 13:39:14.562 3150-3150/? E/NewUnityProjec: Failed to mmap file 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'
2021-06-02 13:39:14.562 3150-3150/? E/NewUnityProjec: Failed to open 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'.
2021-06-02 13:39:14.562 3150-3150/? E/ResourcesManager: Failed to add asset path /data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk
2021-06-02 13:39:14.563 3150-3150/? E/filemap: mmap(3710025728,2684) Failed: Invalid argument
2021-06-02 13:39:14.563 3150-3150/? E/NewUnityProjec: Failed to mmap file 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'
2021-06-02 13:39:14.563 3150-3150/? E/NewUnityProjec: Failed to open 'resources.arsc' in APK '/data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk'.
2021-06-02 13:39:14.563 3150-3150/? E/ResourcesManager: Failed to add asset path /data/app/com.DefaultCompany.NewUnityProject--LwelO8ZsoptnAlXFv36ig==/base.apk
2021-06-02 13:39:14.564 3150-3150/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.DefaultCompany.NewUnityProject,PID: 3150
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.content.res.Resources.getAssets()' on a null object reference
at android.app.LoadedApk.getAssets(LoadedApk.java:1247)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1336)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6882)
at android.app.ActivityThread.access$1500(ActivityThread.java:235)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.app.ActivityThread.main(ActivityThread.java:7890)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:983)
和 a
一个 | b |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
我会得到一个转置结果
- | - | - |
---|---|---|
1 | 3 | 5 |
2 | 4 | 6 |
关键是我想访问每列的数据,例如。迭代列 b
中的所有内容。
我正在检查可用的输出格式 - Arrow 可以,但我的平台目前不支持它。
我正在寻找一种最有效的方法。例如。考虑到 ClickHouse 已经将数据存储在列中,它不必将其处理成行,因此我可以在之后使用数组函数将其传输回列。我不太熟悉内部结构,但我想知道如果数据已经在列中,我可以以某种方式跳过转置行。
解决方法
显然没有简单的方法可以做到。 还有一个更大的问题是它违反了 SQL 概念。
您可以使用本机协议,但您将获得 65k 行的列。
col_a 65k values,col_b 65k values,col_a next 65k values,col_b next 65k values